package com.hxkj.service;

import com.github.pagehelper.PageInfo;
import com.hxkj.domain.po.Templet;
import com.hxkj.domain.po.TemplteTree;
import com.integral.mall.file.storage.sftp.SFTPStorage;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultMessageStruct;
import com.platform.common.domain.result.ResultPageStruct;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 网站模板Service
 * <p>
 * Created by yaosy on 2018年6月6日
 */
public interface TemplteService {

    /**
     * 新建文件
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<Templet> saveContent(Templet templet);


    /**
     * 新建目录
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<Templet> saveFolder(Templet templet,SFTPStorage sftpStorage);


    /**
     * 获取单条模板数据
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<Templet> get(Templet templet) throws Exception;

    /**
     * 模板功能树
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<List<TemplteTree>> getTempletTree(Templet templet) throws Exception;

    /**
     * 模板编辑
     * @param templet
     * @return
     * @throws Exception
     */
    ResultMessageStruct modify(Templet templet,SFTPStorage sftpStorage)throws Exception;

    /**
     * 删除模板
     * @param templet
     * @return
     * @throws Exception
     */
    ResultMessageStruct remove(Templet templet)throws Exception;


    /**
     * 模板列表下拉框
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<List<TemplteTree>> getTree(Templet templet) throws Exception;


    /**
     * 模板上传后需要保存的信息
     *
     * @param templet
     * @return
     * @throws Exception
     */
    ResultDataStruct<Templet> saveUploadContent(Templet templet);

    Templet getTemplet(Templet t);

    /****
     * 查询模板条数
     * @param templet
     * @return
     * @throws Exception
     * **/
    ResultMessageStruct getAllTempletByTempletId(Templet templet) throws Exception;

    /**
     * @author Mr.zheng
     * @Description getTempletBySiteId 根据站点获取模板文件
     * @Date 10:01 2018/8/17
     * @Param [templet]
     * @return com.platform.common.domain.result.ResultDataStruct<java.util.List<com.hxkj.domain.po.Templet>>
     **/
    ResultDataStruct<List<Templet>> getTempletBySiteId(Templet templet) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyTempletMd5 修改添加模板文件的MD5值
    * @Date 10:18 2018/8/20
    * @Param [templet]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct modifyTempletMd5(Templet templet) throws Exception;
    
    /**
    * @author Mr.zheng
    * @Description visuaTempletTree 可视化模板接口
    * @Date 17:49 2018/8/23
    * @Param [templet]
    * @return com.platform.common.domain.result.ResultDataStruct<java.util.List<com.hxkj.domain.po.TemplteTree>>
    **/
    ResultDataStruct<List<TemplteTree>> visuaTempletTree(Templet templet) throws Exception;

    /****
     * 查询所有模板
     * @param
     * @return
     * @throws Exception
     * **/
    List<Templet> getList();
}
